package com.jieshuibao.model.db;

import java.util.ArrayList;
import java.util.List;

public class InvoiceExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    private int pageIndex;

    private int pageSize;

    public InvoiceExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    public void setPageIndex(int pageIndex) {
        this.pageIndex=pageIndex;
    }

    public int getPageIndex() {
        return this.pageIndex;
    }

    public void setPageSize(int pageSize) {
        this.pageSize=pageSize;
    }

    public int getPageSize() {
        return this.pageSize;
    }

    public InvoiceExample(int pageIndex, int pageSize) {
        this();
        this.pageIndex=pageIndex;
        this.pageSize=pageSize;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andUuidIsNull() {
            addCriterion("invoice.uuid is null");
            return (Criteria) this;
        }

        public Criteria andUuidIsNotNull() {
            addCriterion("invoice.uuid is not null");
            return (Criteria) this;
        }

        public Criteria andUuidEqualTo(String value) {
            addCriterion("invoice.uuid =", value, "uuid");
            return (Criteria) this;
        }

        public Criteria andUuidNotEqualTo(String value) {
            addCriterion("invoice.uuid <>", value, "uuid");
            return (Criteria) this;
        }

        public Criteria andUuidGreaterThan(String value) {
            addCriterion("invoice.uuid >", value, "uuid");
            return (Criteria) this;
        }

        public Criteria andUuidGreaterThanOrEqualTo(String value) {
            addCriterion("invoice.uuid >=", value, "uuid");
            return (Criteria) this;
        }

        public Criteria andUuidLessThan(String value) {
            addCriterion("invoice.uuid <", value, "uuid");
            return (Criteria) this;
        }

        public Criteria andUuidLessThanOrEqualTo(String value) {
            addCriterion("invoice.uuid <=", value, "uuid");
            return (Criteria) this;
        }

        public Criteria andUuidLike(String value) {
            addCriterion("invoice.uuid like", value, "uuid");
            return (Criteria) this;
        }

        public Criteria andUuidNotLike(String value) {
            addCriterion("invoice.uuid not like", value, "uuid");
            return (Criteria) this;
        }

        public Criteria andUuidIn(List<String> values) {
            addCriterion("invoice.uuid in", values, "uuid");
            return (Criteria) this;
        }

        public Criteria andUuidNotIn(List<String> values) {
            addCriterion("invoice.uuid not in", values, "uuid");
            return (Criteria) this;
        }

        public Criteria andUuidBetween(String value1, String value2) {
            addCriterion("invoice.uuid between", value1, value2, "uuid");
            return (Criteria) this;
        }

        public Criteria andUuidNotBetween(String value1, String value2) {
            addCriterion("invoice.uuid not between", value1, value2, "uuid");
            return (Criteria) this;
        }

        public Criteria andCompanyNameIsNull() {
            addCriterion("invoice.companyName is null");
            return (Criteria) this;
        }

        public Criteria andCompanyNameIsNotNull() {
            addCriterion("invoice.companyName is not null");
            return (Criteria) this;
        }

        public Criteria andCompanyNameEqualTo(String value) {
            addCriterion("invoice.companyName =", value, "companyName");
            return (Criteria) this;
        }

        public Criteria andCompanyNameNotEqualTo(String value) {
            addCriterion("invoice.companyName <>", value, "companyName");
            return (Criteria) this;
        }

        public Criteria andCompanyNameGreaterThan(String value) {
            addCriterion("invoice.companyName >", value, "companyName");
            return (Criteria) this;
        }

        public Criteria andCompanyNameGreaterThanOrEqualTo(String value) {
            addCriterion("invoice.companyName >=", value, "companyName");
            return (Criteria) this;
        }

        public Criteria andCompanyNameLessThan(String value) {
            addCriterion("invoice.companyName <", value, "companyName");
            return (Criteria) this;
        }

        public Criteria andCompanyNameLessThanOrEqualTo(String value) {
            addCriterion("invoice.companyName <=", value, "companyName");
            return (Criteria) this;
        }

        public Criteria andCompanyNameLike(String value) {
            addCriterion("invoice.companyName like", value, "companyName");
            return (Criteria) this;
        }

        public Criteria andCompanyNameNotLike(String value) {
            addCriterion("invoice.companyName not like", value, "companyName");
            return (Criteria) this;
        }

        public Criteria andCompanyNameIn(List<String> values) {
            addCriterion("invoice.companyName in", values, "companyName");
            return (Criteria) this;
        }

        public Criteria andCompanyNameNotIn(List<String> values) {
            addCriterion("invoice.companyName not in", values, "companyName");
            return (Criteria) this;
        }

        public Criteria andCompanyNameBetween(String value1, String value2) {
            addCriterion("invoice.companyName between", value1, value2, "companyName");
            return (Criteria) this;
        }

        public Criteria andCompanyNameNotBetween(String value1, String value2) {
            addCriterion("invoice.companyName not between", value1, value2, "companyName");
            return (Criteria) this;
        }

        public Criteria andUserPhoneNumIsNull() {
            addCriterion("invoice.userPhoneNum is null");
            return (Criteria) this;
        }

        public Criteria andUserPhoneNumIsNotNull() {
            addCriterion("invoice.userPhoneNum is not null");
            return (Criteria) this;
        }

        public Criteria andUserPhoneNumEqualTo(String value) {
            addCriterion("invoice.userPhoneNum =", value, "userPhoneNum");
            return (Criteria) this;
        }

        public Criteria andUserPhoneNumNotEqualTo(String value) {
            addCriterion("invoice.userPhoneNum <>", value, "userPhoneNum");
            return (Criteria) this;
        }

        public Criteria andUserPhoneNumGreaterThan(String value) {
            addCriterion("invoice.userPhoneNum >", value, "userPhoneNum");
            return (Criteria) this;
        }

        public Criteria andUserPhoneNumGreaterThanOrEqualTo(String value) {
            addCriterion("invoice.userPhoneNum >=", value, "userPhoneNum");
            return (Criteria) this;
        }

        public Criteria andUserPhoneNumLessThan(String value) {
            addCriterion("invoice.userPhoneNum <", value, "userPhoneNum");
            return (Criteria) this;
        }

        public Criteria andUserPhoneNumLessThanOrEqualTo(String value) {
            addCriterion("invoice.userPhoneNum <=", value, "userPhoneNum");
            return (Criteria) this;
        }

        public Criteria andUserPhoneNumLike(String value) {
            addCriterion("invoice.userPhoneNum like", value, "userPhoneNum");
            return (Criteria) this;
        }

        public Criteria andUserPhoneNumNotLike(String value) {
            addCriterion("invoice.userPhoneNum not like", value, "userPhoneNum");
            return (Criteria) this;
        }

        public Criteria andUserPhoneNumIn(List<String> values) {
            addCriterion("invoice.userPhoneNum in", values, "userPhoneNum");
            return (Criteria) this;
        }

        public Criteria andUserPhoneNumNotIn(List<String> values) {
            addCriterion("invoice.userPhoneNum not in", values, "userPhoneNum");
            return (Criteria) this;
        }

        public Criteria andUserPhoneNumBetween(String value1, String value2) {
            addCriterion("invoice.userPhoneNum between", value1, value2, "userPhoneNum");
            return (Criteria) this;
        }

        public Criteria andUserPhoneNumNotBetween(String value1, String value2) {
            addCriterion("invoice.userPhoneNum not between", value1, value2, "userPhoneNum");
            return (Criteria) this;
        }

        public Criteria andReceiverNameIsNull() {
            addCriterion("invoice.receiverName is null");
            return (Criteria) this;
        }

        public Criteria andReceiverNameIsNotNull() {
            addCriterion("invoice.receiverName is not null");
            return (Criteria) this;
        }

        public Criteria andReceiverNameEqualTo(String value) {
            addCriterion("invoice.receiverName =", value, "receiverName");
            return (Criteria) this;
        }

        public Criteria andReceiverNameNotEqualTo(String value) {
            addCriterion("invoice.receiverName <>", value, "receiverName");
            return (Criteria) this;
        }

        public Criteria andReceiverNameGreaterThan(String value) {
            addCriterion("invoice.receiverName >", value, "receiverName");
            return (Criteria) this;
        }

        public Criteria andReceiverNameGreaterThanOrEqualTo(String value) {
            addCriterion("invoice.receiverName >=", value, "receiverName");
            return (Criteria) this;
        }

        public Criteria andReceiverNameLessThan(String value) {
            addCriterion("invoice.receiverName <", value, "receiverName");
            return (Criteria) this;
        }

        public Criteria andReceiverNameLessThanOrEqualTo(String value) {
            addCriterion("invoice.receiverName <=", value, "receiverName");
            return (Criteria) this;
        }

        public Criteria andReceiverNameLike(String value) {
            addCriterion("invoice.receiverName like", value, "receiverName");
            return (Criteria) this;
        }

        public Criteria andReceiverNameNotLike(String value) {
            addCriterion("invoice.receiverName not like", value, "receiverName");
            return (Criteria) this;
        }

        public Criteria andReceiverNameIn(List<String> values) {
            addCriterion("invoice.receiverName in", values, "receiverName");
            return (Criteria) this;
        }

        public Criteria andReceiverNameNotIn(List<String> values) {
            addCriterion("invoice.receiverName not in", values, "receiverName");
            return (Criteria) this;
        }

        public Criteria andReceiverNameBetween(String value1, String value2) {
            addCriterion("invoice.receiverName between", value1, value2, "receiverName");
            return (Criteria) this;
        }

        public Criteria andReceiverNameNotBetween(String value1, String value2) {
            addCriterion("invoice.receiverName not between", value1, value2, "receiverName");
            return (Criteria) this;
        }

        public Criteria andReceiverPhoneNumIsNull() {
            addCriterion("invoice.receiverPhoneNum is null");
            return (Criteria) this;
        }

        public Criteria andReceiverPhoneNumIsNotNull() {
            addCriterion("invoice.receiverPhoneNum is not null");
            return (Criteria) this;
        }

        public Criteria andReceiverPhoneNumEqualTo(String value) {
            addCriterion("invoice.receiverPhoneNum =", value, "receiverPhoneNum");
            return (Criteria) this;
        }

        public Criteria andReceiverPhoneNumNotEqualTo(String value) {
            addCriterion("invoice.receiverPhoneNum <>", value, "receiverPhoneNum");
            return (Criteria) this;
        }

        public Criteria andReceiverPhoneNumGreaterThan(String value) {
            addCriterion("invoice.receiverPhoneNum >", value, "receiverPhoneNum");
            return (Criteria) this;
        }

        public Criteria andReceiverPhoneNumGreaterThanOrEqualTo(String value) {
            addCriterion("invoice.receiverPhoneNum >=", value, "receiverPhoneNum");
            return (Criteria) this;
        }

        public Criteria andReceiverPhoneNumLessThan(String value) {
            addCriterion("invoice.receiverPhoneNum <", value, "receiverPhoneNum");
            return (Criteria) this;
        }

        public Criteria andReceiverPhoneNumLessThanOrEqualTo(String value) {
            addCriterion("invoice.receiverPhoneNum <=", value, "receiverPhoneNum");
            return (Criteria) this;
        }

        public Criteria andReceiverPhoneNumLike(String value) {
            addCriterion("invoice.receiverPhoneNum like", value, "receiverPhoneNum");
            return (Criteria) this;
        }

        public Criteria andReceiverPhoneNumNotLike(String value) {
            addCriterion("invoice.receiverPhoneNum not like", value, "receiverPhoneNum");
            return (Criteria) this;
        }

        public Criteria andReceiverPhoneNumIn(List<String> values) {
            addCriterion("invoice.receiverPhoneNum in", values, "receiverPhoneNum");
            return (Criteria) this;
        }

        public Criteria andReceiverPhoneNumNotIn(List<String> values) {
            addCriterion("invoice.receiverPhoneNum not in", values, "receiverPhoneNum");
            return (Criteria) this;
        }

        public Criteria andReceiverPhoneNumBetween(String value1, String value2) {
            addCriterion("invoice.receiverPhoneNum between", value1, value2, "receiverPhoneNum");
            return (Criteria) this;
        }

        public Criteria andReceiverPhoneNumNotBetween(String value1, String value2) {
            addCriterion("invoice.receiverPhoneNum not between", value1, value2, "receiverPhoneNum");
            return (Criteria) this;
        }

        public Criteria andAddressIsNull() {
            addCriterion("invoice.address is null");
            return (Criteria) this;
        }

        public Criteria andAddressIsNotNull() {
            addCriterion("invoice.address is not null");
            return (Criteria) this;
        }

        public Criteria andAddressEqualTo(String value) {
            addCriterion("invoice.address =", value, "address");
            return (Criteria) this;
        }

        public Criteria andAddressNotEqualTo(String value) {
            addCriterion("invoice.address <>", value, "address");
            return (Criteria) this;
        }

        public Criteria andAddressGreaterThan(String value) {
            addCriterion("invoice.address >", value, "address");
            return (Criteria) this;
        }

        public Criteria andAddressGreaterThanOrEqualTo(String value) {
            addCriterion("invoice.address >=", value, "address");
            return (Criteria) this;
        }

        public Criteria andAddressLessThan(String value) {
            addCriterion("invoice.address <", value, "address");
            return (Criteria) this;
        }

        public Criteria andAddressLessThanOrEqualTo(String value) {
            addCriterion("invoice.address <=", value, "address");
            return (Criteria) this;
        }

        public Criteria andAddressLike(String value) {
            addCriterion("invoice.address like", value, "address");
            return (Criteria) this;
        }

        public Criteria andAddressNotLike(String value) {
            addCriterion("invoice.address not like", value, "address");
            return (Criteria) this;
        }

        public Criteria andAddressIn(List<String> values) {
            addCriterion("invoice.address in", values, "address");
            return (Criteria) this;
        }

        public Criteria andAddressNotIn(List<String> values) {
            addCriterion("invoice.address not in", values, "address");
            return (Criteria) this;
        }

        public Criteria andAddressBetween(String value1, String value2) {
            addCriterion("invoice.address between", value1, value2, "address");
            return (Criteria) this;
        }

        public Criteria andAddressNotBetween(String value1, String value2) {
            addCriterion("invoice.address not between", value1, value2, "address");
            return (Criteria) this;
        }

        public Criteria andEmailIsNull() {
            addCriterion("invoice.email is null");
            return (Criteria) this;
        }

        public Criteria andEmailIsNotNull() {
            addCriterion("invoice.email is not null");
            return (Criteria) this;
        }

        public Criteria andEmailEqualTo(String value) {
            addCriterion("invoice.email =", value, "email");
            return (Criteria) this;
        }

        public Criteria andEmailNotEqualTo(String value) {
            addCriterion("invoice.email <>", value, "email");
            return (Criteria) this;
        }

        public Criteria andEmailGreaterThan(String value) {
            addCriterion("invoice.email >", value, "email");
            return (Criteria) this;
        }

        public Criteria andEmailGreaterThanOrEqualTo(String value) {
            addCriterion("invoice.email >=", value, "email");
            return (Criteria) this;
        }

        public Criteria andEmailLessThan(String value) {
            addCriterion("invoice.email <", value, "email");
            return (Criteria) this;
        }

        public Criteria andEmailLessThanOrEqualTo(String value) {
            addCriterion("invoice.email <=", value, "email");
            return (Criteria) this;
        }

        public Criteria andEmailLike(String value) {
            addCriterion("invoice.email like", value, "email");
            return (Criteria) this;
        }

        public Criteria andEmailNotLike(String value) {
            addCriterion("invoice.email not like", value, "email");
            return (Criteria) this;
        }

        public Criteria andEmailIn(List<String> values) {
            addCriterion("invoice.email in", values, "email");
            return (Criteria) this;
        }

        public Criteria andEmailNotIn(List<String> values) {
            addCriterion("invoice.email not in", values, "email");
            return (Criteria) this;
        }

        public Criteria andEmailBetween(String value1, String value2) {
            addCriterion("invoice.email between", value1, value2, "email");
            return (Criteria) this;
        }

        public Criteria andEmailNotBetween(String value1, String value2) {
            addCriterion("invoice.email not between", value1, value2, "email");
            return (Criteria) this;
        }

        public Criteria andTaxNumIsNull() {
            addCriterion("invoice.taxNum is null");
            return (Criteria) this;
        }

        public Criteria andTaxNumIsNotNull() {
            addCriterion("invoice.taxNum is not null");
            return (Criteria) this;
        }

        public Criteria andTaxNumEqualTo(String value) {
            addCriterion("invoice.taxNum =", value, "taxNum");
            return (Criteria) this;
        }

        public Criteria andTaxNumNotEqualTo(String value) {
            addCriterion("invoice.taxNum <>", value, "taxNum");
            return (Criteria) this;
        }

        public Criteria andTaxNumGreaterThan(String value) {
            addCriterion("invoice.taxNum >", value, "taxNum");
            return (Criteria) this;
        }

        public Criteria andTaxNumGreaterThanOrEqualTo(String value) {
            addCriterion("invoice.taxNum >=", value, "taxNum");
            return (Criteria) this;
        }

        public Criteria andTaxNumLessThan(String value) {
            addCriterion("invoice.taxNum <", value, "taxNum");
            return (Criteria) this;
        }

        public Criteria andTaxNumLessThanOrEqualTo(String value) {
            addCriterion("invoice.taxNum <=", value, "taxNum");
            return (Criteria) this;
        }

        public Criteria andTaxNumLike(String value) {
            addCriterion("invoice.taxNum like", value, "taxNum");
            return (Criteria) this;
        }

        public Criteria andTaxNumNotLike(String value) {
            addCriterion("invoice.taxNum not like", value, "taxNum");
            return (Criteria) this;
        }

        public Criteria andTaxNumIn(List<String> values) {
            addCriterion("invoice.taxNum in", values, "taxNum");
            return (Criteria) this;
        }

        public Criteria andTaxNumNotIn(List<String> values) {
            addCriterion("invoice.taxNum not in", values, "taxNum");
            return (Criteria) this;
        }

        public Criteria andTaxNumBetween(String value1, String value2) {
            addCriterion("invoice.taxNum between", value1, value2, "taxNum");
            return (Criteria) this;
        }

        public Criteria andTaxNumNotBetween(String value1, String value2) {
            addCriterion("invoice.taxNum not between", value1, value2, "taxNum");
            return (Criteria) this;
        }

        public Criteria andTaxTypeIsNull() {
            addCriterion("invoice.taxType is null");
            return (Criteria) this;
        }

        public Criteria andTaxTypeIsNotNull() {
            addCriterion("invoice.taxType is not null");
            return (Criteria) this;
        }

        public Criteria andTaxTypeEqualTo(String value) {
            addCriterion("invoice.taxType =", value, "taxType");
            return (Criteria) this;
        }

        public Criteria andTaxTypeNotEqualTo(String value) {
            addCriterion("invoice.taxType <>", value, "taxType");
            return (Criteria) this;
        }

        public Criteria andTaxTypeGreaterThan(String value) {
            addCriterion("invoice.taxType >", value, "taxType");
            return (Criteria) this;
        }

        public Criteria andTaxTypeGreaterThanOrEqualTo(String value) {
            addCriterion("invoice.taxType >=", value, "taxType");
            return (Criteria) this;
        }

        public Criteria andTaxTypeLessThan(String value) {
            addCriterion("invoice.taxType <", value, "taxType");
            return (Criteria) this;
        }

        public Criteria andTaxTypeLessThanOrEqualTo(String value) {
            addCriterion("invoice.taxType <=", value, "taxType");
            return (Criteria) this;
        }

        public Criteria andTaxTypeLike(String value) {
            addCriterion("invoice.taxType like", value, "taxType");
            return (Criteria) this;
        }

        public Criteria andTaxTypeNotLike(String value) {
            addCriterion("invoice.taxType not like", value, "taxType");
            return (Criteria) this;
        }

        public Criteria andTaxTypeIn(List<String> values) {
            addCriterion("invoice.taxType in", values, "taxType");
            return (Criteria) this;
        }

        public Criteria andTaxTypeNotIn(List<String> values) {
            addCriterion("invoice.taxType not in", values, "taxType");
            return (Criteria) this;
        }

        public Criteria andTaxTypeBetween(String value1, String value2) {
            addCriterion("invoice.taxType between", value1, value2, "taxType");
            return (Criteria) this;
        }

        public Criteria andTaxTypeNotBetween(String value1, String value2) {
            addCriterion("invoice.taxType not between", value1, value2, "taxType");
            return (Criteria) this;
        }

        public Criteria andAccountBankIsNull() {
            addCriterion("invoice.accountBank is null");
            return (Criteria) this;
        }

        public Criteria andAccountBankIsNotNull() {
            addCriterion("invoice.accountBank is not null");
            return (Criteria) this;
        }

        public Criteria andAccountBankEqualTo(String value) {
            addCriterion("invoice.accountBank =", value, "accountBank");
            return (Criteria) this;
        }

        public Criteria andAccountBankNotEqualTo(String value) {
            addCriterion("invoice.accountBank <>", value, "accountBank");
            return (Criteria) this;
        }

        public Criteria andAccountBankGreaterThan(String value) {
            addCriterion("invoice.accountBank >", value, "accountBank");
            return (Criteria) this;
        }

        public Criteria andAccountBankGreaterThanOrEqualTo(String value) {
            addCriterion("invoice.accountBank >=", value, "accountBank");
            return (Criteria) this;
        }

        public Criteria andAccountBankLessThan(String value) {
            addCriterion("invoice.accountBank <", value, "accountBank");
            return (Criteria) this;
        }

        public Criteria andAccountBankLessThanOrEqualTo(String value) {
            addCriterion("invoice.accountBank <=", value, "accountBank");
            return (Criteria) this;
        }

        public Criteria andAccountBankLike(String value) {
            addCriterion("invoice.accountBank like", value, "accountBank");
            return (Criteria) this;
        }

        public Criteria andAccountBankNotLike(String value) {
            addCriterion("invoice.accountBank not like", value, "accountBank");
            return (Criteria) this;
        }

        public Criteria andAccountBankIn(List<String> values) {
            addCriterion("invoice.accountBank in", values, "accountBank");
            return (Criteria) this;
        }

        public Criteria andAccountBankNotIn(List<String> values) {
            addCriterion("invoice.accountBank not in", values, "accountBank");
            return (Criteria) this;
        }

        public Criteria andAccountBankBetween(String value1, String value2) {
            addCriterion("invoice.accountBank between", value1, value2, "accountBank");
            return (Criteria) this;
        }

        public Criteria andAccountBankNotBetween(String value1, String value2) {
            addCriterion("invoice.accountBank not between", value1, value2, "accountBank");
            return (Criteria) this;
        }

        public Criteria andAccountNumberIsNull() {
            addCriterion("invoice.accountNumber is null");
            return (Criteria) this;
        }

        public Criteria andAccountNumberIsNotNull() {
            addCriterion("invoice.accountNumber is not null");
            return (Criteria) this;
        }

        public Criteria andAccountNumberEqualTo(String value) {
            addCriterion("invoice.accountNumber =", value, "accountNumber");
            return (Criteria) this;
        }

        public Criteria andAccountNumberNotEqualTo(String value) {
            addCriterion("invoice.accountNumber <>", value, "accountNumber");
            return (Criteria) this;
        }

        public Criteria andAccountNumberGreaterThan(String value) {
            addCriterion("invoice.accountNumber >", value, "accountNumber");
            return (Criteria) this;
        }

        public Criteria andAccountNumberGreaterThanOrEqualTo(String value) {
            addCriterion("invoice.accountNumber >=", value, "accountNumber");
            return (Criteria) this;
        }

        public Criteria andAccountNumberLessThan(String value) {
            addCriterion("invoice.accountNumber <", value, "accountNumber");
            return (Criteria) this;
        }

        public Criteria andAccountNumberLessThanOrEqualTo(String value) {
            addCriterion("invoice.accountNumber <=", value, "accountNumber");
            return (Criteria) this;
        }

        public Criteria andAccountNumberLike(String value) {
            addCriterion("invoice.accountNumber like", value, "accountNumber");
            return (Criteria) this;
        }

        public Criteria andAccountNumberNotLike(String value) {
            addCriterion("invoice.accountNumber not like", value, "accountNumber");
            return (Criteria) this;
        }

        public Criteria andAccountNumberIn(List<String> values) {
            addCriterion("invoice.accountNumber in", values, "accountNumber");
            return (Criteria) this;
        }

        public Criteria andAccountNumberNotIn(List<String> values) {
            addCriterion("invoice.accountNumber not in", values, "accountNumber");
            return (Criteria) this;
        }

        public Criteria andAccountNumberBetween(String value1, String value2) {
            addCriterion("invoice.accountNumber between", value1, value2, "accountNumber");
            return (Criteria) this;
        }

        public Criteria andAccountNumberNotBetween(String value1, String value2) {
            addCriterion("invoice.accountNumber not between", value1, value2, "accountNumber");
            return (Criteria) this;
        }

        public Criteria andCompanyTellIsNull() {
            addCriterion("invoice.companyTell is null");
            return (Criteria) this;
        }

        public Criteria andCompanyTellIsNotNull() {
            addCriterion("invoice.companyTell is not null");
            return (Criteria) this;
        }

        public Criteria andCompanyTellEqualTo(String value) {
            addCriterion("invoice.companyTell =", value, "companyTell");
            return (Criteria) this;
        }

        public Criteria andCompanyTellNotEqualTo(String value) {
            addCriterion("invoice.companyTell <>", value, "companyTell");
            return (Criteria) this;
        }

        public Criteria andCompanyTellGreaterThan(String value) {
            addCriterion("invoice.companyTell >", value, "companyTell");
            return (Criteria) this;
        }

        public Criteria andCompanyTellGreaterThanOrEqualTo(String value) {
            addCriterion("invoice.companyTell >=", value, "companyTell");
            return (Criteria) this;
        }

        public Criteria andCompanyTellLessThan(String value) {
            addCriterion("invoice.companyTell <", value, "companyTell");
            return (Criteria) this;
        }

        public Criteria andCompanyTellLessThanOrEqualTo(String value) {
            addCriterion("invoice.companyTell <=", value, "companyTell");
            return (Criteria) this;
        }

        public Criteria andCompanyTellLike(String value) {
            addCriterion("invoice.companyTell like", value, "companyTell");
            return (Criteria) this;
        }

        public Criteria andCompanyTellNotLike(String value) {
            addCriterion("invoice.companyTell not like", value, "companyTell");
            return (Criteria) this;
        }

        public Criteria andCompanyTellIn(List<String> values) {
            addCriterion("invoice.companyTell in", values, "companyTell");
            return (Criteria) this;
        }

        public Criteria andCompanyTellNotIn(List<String> values) {
            addCriterion("invoice.companyTell not in", values, "companyTell");
            return (Criteria) this;
        }

        public Criteria andCompanyTellBetween(String value1, String value2) {
            addCriterion("invoice.companyTell between", value1, value2, "companyTell");
            return (Criteria) this;
        }

        public Criteria andCompanyTellNotBetween(String value1, String value2) {
            addCriterion("invoice.companyTell not between", value1, value2, "companyTell");
            return (Criteria) this;
        }

        public Criteria andCompanyAddressIsNull() {
            addCriterion("invoice.companyAddress is null");
            return (Criteria) this;
        }

        public Criteria andCompanyAddressIsNotNull() {
            addCriterion("invoice.companyAddress is not null");
            return (Criteria) this;
        }

        public Criteria andCompanyAddressEqualTo(String value) {
            addCriterion("invoice.companyAddress =", value, "companyAddress");
            return (Criteria) this;
        }

        public Criteria andCompanyAddressNotEqualTo(String value) {
            addCriterion("invoice.companyAddress <>", value, "companyAddress");
            return (Criteria) this;
        }

        public Criteria andCompanyAddressGreaterThan(String value) {
            addCriterion("invoice.companyAddress >", value, "companyAddress");
            return (Criteria) this;
        }

        public Criteria andCompanyAddressGreaterThanOrEqualTo(String value) {
            addCriterion("invoice.companyAddress >=", value, "companyAddress");
            return (Criteria) this;
        }

        public Criteria andCompanyAddressLessThan(String value) {
            addCriterion("invoice.companyAddress <", value, "companyAddress");
            return (Criteria) this;
        }

        public Criteria andCompanyAddressLessThanOrEqualTo(String value) {
            addCriterion("invoice.companyAddress <=", value, "companyAddress");
            return (Criteria) this;
        }

        public Criteria andCompanyAddressLike(String value) {
            addCriterion("invoice.companyAddress like", value, "companyAddress");
            return (Criteria) this;
        }

        public Criteria andCompanyAddressNotLike(String value) {
            addCriterion("invoice.companyAddress not like", value, "companyAddress");
            return (Criteria) this;
        }

        public Criteria andCompanyAddressIn(List<String> values) {
            addCriterion("invoice.companyAddress in", values, "companyAddress");
            return (Criteria) this;
        }

        public Criteria andCompanyAddressNotIn(List<String> values) {
            addCriterion("invoice.companyAddress not in", values, "companyAddress");
            return (Criteria) this;
        }

        public Criteria andCompanyAddressBetween(String value1, String value2) {
            addCriterion("invoice.companyAddress between", value1, value2, "companyAddress");
            return (Criteria) this;
        }

        public Criteria andCompanyAddressNotBetween(String value1, String value2) {
            addCriterion("invoice.companyAddress not between", value1, value2, "companyAddress");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}